🌎 rns.kin.earth git 🌍
Commit dcbc7638d07fe119a733e252d1b2c7a4691ae3fb
Parents : 0536b97
Author : Mark Qvist <bc7291552be7a58f361522990465165c>
Signature : T66BB85Valid, signed by author
Date : 2026-08-25T13:22:46+02:00
Fixed RSSI/SNR reporting regression
Changes
4 files changed, 11 insertions(+), 8 deletions(-)
Diff
diff --git a/RNS/Interfaces/Interface.py b/RNS/Interfaces/Interface.py
index 6a501121..9ddb0539 100755
--- a/RNS/Interfaces/Interface.py
+++ b/RNS/Interfaces/Interface.py
@@ -158,6 +158,11 @@ class Interface:
self.ifac_violations = 0
self.packet_filter_hits = 0
+ self.reports_phy_stats = False
+ self.r_stat_rssi = None
+ self.r_stat_snr = None
+ self.r_stat_q = None
+
def get_hash(self):
if not self.__hash: self.__hash = RNS.Identity.full_hash(str(self).encode("utf-8"))
return self.__hash
diff --git a/RNS/Interfaces/RNodeInterface.py b/RNS/Interfaces/RNodeInterface.py
index ed57cc48..42524bff 100644
--- a/RNS/Interfaces/RNodeInterface.py
+++ b/RNS/Interfaces/RNodeInterface.py
@@ -258,6 +258,7 @@ class RNodeInterface(Interface):
self.r_stat_tx = None
self.r_stat_rssi = None
self.r_stat_snr = None
+ self.r_stat_q = None
self.r_st_alock = None
self.r_lt_alock = None
self.r_random = None
@@ -278,6 +279,7 @@ class RNodeInterface(Interface):
self.r_noise_floor = None
self.r_interference = None
self.r_interference_l = None
+ self.reports_phy_stats = True
self.r_battery_state = RNodeInterface.BATTERY_STATE_UNKNOWN
self.r_battery_percent = 0
@@ -702,9 +704,6 @@ class RNodeInterface(Interface):
def process_incoming(self, data):
self.rxb += len(data)
self.owner.inbound(data, self)
- self.r_stat_rssi = None
- self.r_stat_snr = None
-
def process_outgoing(self,data):
datalen = len(data)
diff --git a/RNS/Interfaces/RNodeMultiInterface.py b/RNS/Interfaces/RNodeMultiInterface.py
index 424394f4..97b74abd 100644
--- a/RNS/Interfaces/RNodeMultiInterface.py
+++ b/RNS/Interfaces/RNodeMultiInterface.py
@@ -269,6 +269,7 @@ class RNodeMultiInterface(Interface):
self.r_stat_tx = None
self.r_stat_rssi = None
self.r_stat_snr = None
+ self.r_stat_q = None
self.r_st_alock = None
self.r_lt_alock = None
self.r_random = None
@@ -276,6 +277,8 @@ class RNodeMultiInterface(Interface):
self.packet_queue = []
self.interface_ready = False
self.announce_rate_target = None
+ self.reports_phy_stats = True
+
self.validcfg = True
if id_interval != None and id_callsign != None:
@@ -1127,8 +1130,6 @@ class RNodeSubInterface(Interface):
def process_incoming(self, data):
self.rxb += len(data)
self.owner.inbound(data, self)
- self.r_stat_rssi = None
- self.r_stat_snr = None
def process_outgoing(self,data):
if self.online:
diff --git a/RNS/Transport.py b/RNS/Transport.py
index 9ea62012..97630dc0 100755
--- a/RNS/Transport.py
+++ b/RNS/Transport.py
@@ -1909,21 +1909,19 @@ class Transport:
if packet.receiving_interface != None:
if not packet.receiving_interface.online: return
- if hasattr(packet.receiving_interface, "r_stat_rssi"):
+ if packet.receiving_interface.reports_phy_stats:
if packet.receiving_interface.r_stat_rssi != None:
packet.rssi = packet.receiving_interface.r_stat_rssi
Transport.local_client_rssi_cache.append([packet.packet_hash, packet.rssi])
while len(Transport.local_client_rssi_cache) > Transport.LOCAL_CLIENT_CACHE_MAXSIZE:
Transport.local_client_rssi_cache.pop(0)
- if hasattr(packet.receiving_interface, "r_stat_snr"):
if packet.receiving_interface.r_stat_snr != None:
packet.snr = packet.receiving_interface.r_stat_snr
Transport.local_client_snr_cache.append([packet.packet_hash, packet.snr])
while len(Transport.local_client_snr_cache) > Transport.LOCAL_CLIENT_CACHE_MAXSIZE:
Transport.local_client_snr_cache.pop(0)
- if hasattr(packet.receiving_interface, "r_stat_q"):
if packet.receiving_interface.r_stat_q != None:
packet.q = packet.receiving_interface.r_stat_q
Transport.local_client_q_cache.append([packet.packet_hash, packet.q])
Served by rngit 1.5.2 - Generated in 0.12s